package com.damai.aop.impl;

import org.citywithincity.jobqueue.AsyncJob;
import org.citywithincity.jobqueue.AsyncJobFactory;

import com.damai.aop.MethodInvoker;

public class AopAsyncJobFactory implements AsyncJobFactory {

	public static final String NAME = "_invoker";

	@Override
	public AsyncJob createJob(Object data) {
		
		return new InvokerAsyncJob( (MethodInvoker) data);
	}
	
	public static class InvokerAsyncJob implements AsyncJob{
		
		private MethodInvoker invoker;
		public InvokerAsyncJob(MethodInvoker invoker){
			this.invoker = invoker;
		}

		@Override
		public void execute() {
			invoker.invoke();
		}
		
	}

}
